#ifndef _REAL_TIME_APP_H_
#define _REAL_TIME_APP_H_

#include <stdint.h>
#include <stdlib.h>
#include <stdbool.h>

// 初始化默认时间
#define INITIALIZATION_SYSTEM_TIME                   1735689600
// 误差时间 - 3个月（平年）
#define ERROR_TIME                                   7776000

/**
 * @brief 时间戳转换成实时时间
 *
 * @param Timestamp - 待转换的时间戳
 * @return bool     - 设置状态（true：成功 false：失败）
 */
extern bool RealTimeTimestampToRtc(uint32_t Timestamp);

// /**
//  * @brief 获取格林时间
//  *
//  * @return uint32_t - 格林时间
//  */
// extern uint32_t GetGmtTimestamp(void);

/**
 * @brief 获取当前时间
 *
 * @return uint32_t - 当前时间
 */
extern uint32_t RealTimeMakeCurrentTimestamp(void);

/**
 * @brief 获取当前时间
 *
 * @param pYr - 年
 * @param pMt - 月
 * @param pDe - 日
 * @param pHr - 时
 * @param pMe - 分
 * @param pSd - 秒
 * @param pWk - 周
 */
extern void RealTimeRtcGetCurrentTime(uint16_t *pYr, uint8_t *pMt, uint8_t *pDe, uint8_t *pHr, uint8_t *pMe, uint8_t *pSd, uint8_t *pWk);

/**
 * @brief 实时时间初始化
 *
 */
extern void RealTimeInitialization(void);

/**
 * @brief 相关功能初始化
 *
 */
extern void RealTimeConfiguration(void);

#endif
